/**
 *
 * @description:
 * @author: junyong.hong
 * @createTime: 2018/6/6
 * @version: 1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 */
const {mysql} = require('../qcloud')
module.exports = async (ctx) => {
  /**
   * 连表查询
   *  .select()可以写过个表，但是如果写多个表，不能用*
   *    books.*表示：books表下的所有字段
   *    csessioninfo.user_info表示：csessioninfo表下的user_info字段
   *
   *  .join()：设置要和哪个表连接、条件
   *
   *  .orderBy():排序
   *
   */
    const {page, openid} = ctx.request.query
    const size = 10
    const mysqlSelect = mysql('books')
    .select('books.*', 'cSessionInfo.user_info')
    .join('cSessionInfo', 'books.openid', 'cSessionInfo.open_id')
    .orderBy('books.id', 'desc')

    let books
    if (openid) {
    // 根据opid过滤
        books = await mysqlSelect.where('books.openid', openid)
    } else {
    // 全部图书 分页
        books = await mysqlSelect.limit(size).offset(Number(page) * size)
    }
    // .orderBy('id','desc')
    ctx.state.data = {
        list: books.map(v => {
            const info = JSON.parse(v.user_info)
            return Object.assign({}, v, {
                user_info: {
                    nickName: info.nickName
                }
            })
        })
    }
}
